home *** CD-ROM | disk | FTP | other *** search
/ Reverse Code Engineering RCE CD +sandman 2000 / ReverseCodeEngineeringRceCdsandman2000.iso / RCE / Ebooks / Thinking in C++ V2 / CompileDB.txt < prev    next >
Encoding:
Text File  |  2000-05-25  |  8.1 KB  |  301 lines

  1. #: :CompileDB.txt
  2. // From Thinking in C++, 2nd Edition
  3. // Available at http://www.BruceEckel.com
  4. // (c) Bruce Eckel 1999
  5. // Copyright notice in Copyright.txt
  6. # Compiler information listings for Thinking in 
  7. # C++ 2nd Edition By Bruce Eckel. See copyright 
  8. # notice in Copyright.txt.
  9. # This is used by ExtractCode.cpp to generate the
  10. # makefiles for the book, including the command-
  11. # line flags for each vendor's compiler and 
  12. # linker. Following that are the code listings 
  13. # from the book that will not compile for each 
  14. # compiler. The listings are, to the best of my 
  15. # knowledge, correct Standard C++ (According to 
  16. # the Final Draft International Standard). Please
  17. # note that the tests were performed with the 
  18. # most recent compiler that I had at the time, 
  19. # and may have changed since this file was 
  20. # created.
  21. # After ExtractCode.cpp creates the makefiles
  22. # for each chapter subdirectory, you can say 
  23. # "make egcs", for example, and all the programs
  24. # that will successfully compile with egcs will
  25. # be built.
  26. #################################################
  27. # Compiling all files, for a (theoretical) fully-
  28. # conformant compiler. This assumes a typical
  29. # compiler under dos:
  30. { all }
  31. # Object file name extension in parentheses:
  32. (obj)
  33. # Executable file extension in square brackets:
  34. [exe]
  35. # The leading '&' is for special directives. The
  36. # dos directive means to replace '/' 
  37. # with '\' in all directory paths:
  38. &dos
  39. # The following lines will be inserted directly
  40. # into the makefile (sans the leading '@' sign)
  41. # If your environment variables are set to 
  42. # establish these you won't need to use arguments
  43. # on the make command line to set them:
  44. # CPP: the name of your C++ compiler
  45. # CPPFLAGS: Compilation flags for your compiler
  46. # OFLAG: flag to give the final executable name
  47. #@CPP = yourcompiler
  48. #@CPPFLAGS =
  49. #@OFLAG = -e
  50. @.SUFFIXES : .obj .cpp .c
  51. @.cpp.obj :
  52. @   $(CPP) $(CPPFLAGS) -c $<
  53. @.c.obj :
  54. @   $(CPP) $(CPPFLAGS) -c $<
  55. # Assumes all files will compile
  56. # See later for an example of Unix configuration
  57. #################################################
  58. # Borland C++ Builder 4 -- With Upgrade!!!
  59. # Target name used in makefile:
  60. { Borland }
  61. # Object file name extension in parentheses:
  62. (obj)
  63. # Executable file extension in square brackets:
  64. [exe]
  65. # The leading '&' is for special directives. The
  66. # dos directive means to replace '/' 
  67. # with '\' in all directory paths:
  68. &dos
  69. # Inserted directly into the makefile (without
  70. # the leading '@' sign):
  71. @# Note: this requires the upgrade from 
  72. @# www.Borland.com for successful compilation!
  73. @CPP = Bcc32
  74. @CPPFLAGS = -w-inl -w-csu -wnak    
  75. @OFLAG = -e
  76. @.SUFFIXES : .obj .cpp .c
  77. @.cpp.obj :
  78. @   $(CPP) $(CPPFLAGS) -c $<
  79. @.c.obj :
  80. @   $(CPP) $(CPPFLAGS) -c $<
  81. # Doesn't support static const 
  82. # array initialization:
  83. C10:StaticArray.cpp 
  84. # Problem with string constructors at run-time:
  85. C17:ICompare.cpp
  86. # Template bug:
  87. C19:ArraySize.cpp
  88. # Not sure:
  89. C20:AssocInserter.cpp
  90. # Bitset is Broken in this compiler's library:
  91. C20:BitSet.cpp
  92. # Standard Library problem:
  93. C21:SearchReplace.cpp
  94. # Function-level try blocks not implemented:
  95. C23:FunctionTryBlock.cpp
  96. # Uses the SGI STL extensions, so it actually 
  97. # isn't supposed to compile with this 
  98. # compiler:
  99. C20:MapVsHashMap.cpp
  100. C21:MemFun4.cpp
  101. C21:Compose2.cpp
  102. #################################################
  103. # Visual C++ 6.0 -- With Service Pack 3!!!
  104. # Target name used in makefile:
  105. { Microsoft }
  106. # Object file name extension in parentheses:
  107. (obj)
  108. # Executable file extension in square brackets:
  109. [exe]
  110. # The leading '&' is for special directives. The
  111. # dos directive means to replace '/' 
  112. # with '\' in all directory paths:
  113. &dos
  114. # Inserted directly into the makefile (without
  115. # the leading '@' sign):
  116. @# Note: this requires the service Pack 3 from 
  117. @# www.Microsoft.com for successful compilation!
  118. @CPP = cl
  119. @CPPFLAGS = -GX -GR
  120. @OFLAG = -o
  121. @.SUFFIXES : .obj .cpp .c
  122. @.cpp.obj :
  123. @   $(CPP) $(CPPFLAGS) -c $<
  124. @.c.obj :
  125. @   $(CPP) $(CPPFLAGS) -c $<
  126. C02:Incident.cpp
  127. # It can't even handle multiple "for(int i =...:"
  128. # statements in the same scope (a really old
  129. # language feature!):
  130. C02:Intvector.cpp
  131. C03:Assert.cpp
  132. C07:MemTest.cpp
  133. C09:Cpptime.cpp
  134. C12:Comma.cpp
  135. C13:GlobalNew.cpp
  136. # Common problem with namespaces and C libraries:
  137. C17:ICompare.cpp
  138. C18:FileClassTest.cpp
  139. C18:Datagen.cpp
  140. C18:Datascan.cpp
  141. # Can't do template type induction properly:
  142. C19:ArraySize.cpp
  143. # Doesn't know about template-templates:
  144. C19:TemplateTemplate.cpp
  145. C19:applyGromit2.cpp
  146. # Can't do template specializations:
  147. C19:Sorted.cpp
  148. # Can't do explicit template instantiation:
  149. C19:ExplicitInstantiation.cpp
  150. # Missing part of iostreams:
  151. C20:StreamIt.cpp
  152. # Problem with STL:
  153. C20:BasicSequenceOperations.cpp
  154. C20:VectorCoreDump.cpp
  155. C20:DequeConversion.cpp
  156. C20:Stack2.cpp
  157. # Problem with static class initializer:
  158. C20:BankTeller.cpp
  159. # Missing STL functionality:
  160. C20:VectorOfBool.cpp
  161. # STL problem:
  162. C20:AssocInserter.cpp
  163. # Various problems:
  164. C20:WildLifeMonitor.cpp
  165. C20:MultiSet1.cpp
  166. C20:Thesaurus.cpp
  167. # These use the SGI STL extensions, so they 
  168. # actually aren't supposed to compile 
  169. # with this compiler:
  170. C20:MapVsHashMap.cpp
  171. C21:Compose2.cpp
  172. # Namespace problem again, and other issues:
  173. C21:FunctionObjects.cpp
  174. C21:Binder1.cpp
  175. C21:Binder3.cpp
  176. C21:Binder4.cpp
  177. C21:RandGenTest.cpp
  178. C21:MemFun1.cpp
  179. C21:MemFun2.cpp
  180. C21:FindBlanks.cpp
  181. C21:MemFun3.cpp
  182. C21:MemFun4.cpp
  183. C21:FillGenerateTest.cpp
  184. C21:Counting.cpp
  185. C21:Manipulations.cpp
  186. C21:SearchReplace.cpp
  187. C21:Comparison.cpp
  188. C21:Removing.cpp
  189. C21:SortTest.cpp
  190. C21:SortedSearchTest.cpp
  191. C21:MergeTest.cpp
  192. C21:SetOperations.cpp
  193. C21:ForEach.cpp
  194. C21:Transform.cpp
  195. C21:CalcInventory.cpp
  196. C21:TransformNames.cpp
  197. C21:SpecialList.cpp
  198. C21:NumericTest.cpp
  199. # Most compilers don't support this yet:
  200. C23:FunctionTryBlock.cpp
  201. # Lack of support for 'static const' again:
  202. C25:Recycle2.cpp
  203. C26:ExtractCode.cpp
  204. C26:MemTest.cpp
  205. # All these do not compile only becase of the
  206. # lack of support for 'static const'. To make
  207. # them compile, you must substitute the
  208. # 'enum hack' shown in chapter 8:
  209. C08:StringStack.cpp 
  210. C08:Quoter.cpp
  211. C08:Volatile.cpp
  212. C10:StaticArray.cpp 
  213. C11:HowMany2.cpp 
  214. C11:Autocc.cpp 
  215. C11:Pmem2.cpp 
  216. C12:Smartp.cpp 
  217. C12:Iosop.cpp 
  218. C12:Copymem.cpp 
  219. C12:Refcount.cpp 
  220. C12:RefcountTrace.cpp 
  221. C13:MallocClass.cpp 
  222. C13:Framis.cpp 
  223. C13:ArrayNew.cpp 
  224. C14:FName1.cpp 
  225. C14:FName2.cpp 
  226. C16:IStack.cpp 
  227. C16:Stemp.cpp 
  228. C16:Stemp2.cpp 
  229. C16:Stackt.cpp
  230. C23:Cleanup.cpp
  231. C24:Selfrtti.cpp 
  232. C24:Reinterp.cpp
  233. #################################################
  234. # The egcs (Experimental g++ compiler) snapshot 
  235. # under Linux, dated July 18, 1998
  236. { egcs }
  237. (o)
  238. []
  239. # The unix directive controls the way some of the
  240. # makefile lines are generated:
  241. &unix
  242. @CPP = g++
  243. @OFLAG = -o
  244. @.SUFFIXES : .o .cpp .c
  245. @.cpp.o :
  246. @   $(CPP) $(CPPFLAGS) -c $<
  247. @.c.o :
  248. @   $(CPP) $(CPPFLAGS) -c $<
  249. # Files that won't compile
  250. # Error in streambuf.h:
  251. C18:Cppcheck.cpp
  252. # Not sure:
  253. C19:applyGromit2.cpp
  254. # Missing the standard library 'at()':
  255. C19:Sorted.cpp
  256. C19:ExplicitInstantiation.cpp
  257. # Problem with the egcs iterator header
  258. C20:StreambufIterator.cpp
  259. C20:RawStorageIterator.cpp
  260. # egcs is missing istreambuf_iterator
  261. C20:WordList2.cpp
  262. C20:TokenizeTest.cpp
  263. C20:TokenIteratorTest.cpp
  264. C20:WordCount.cpp
  265. C20:MultiSetWordCount.cpp
  266. # egcs is missing std::iterator:
  267. C20:Ring.cpp
  268. # egcs is missing char_traits
  269. C17:ICompare.cpp
  270. # egcs vector and deque (at least) are missing
  271. # the "at()" functions:
  272. C20:IndexingVsAt.cpp
  273. # There's a problem with the egcs string class:
  274. C17:Compare2.cpp
  275. # Broken in this compiler's library:
  276. C20:BitSet.cpp
  277. # These are because <sstream> isn't implemented
  278. C18:NumberPhotos.cpp
  279. C19:stringConvTest.cpp
  280. C20:StringVector.cpp
  281. C20:FEditTest.cpp
  282. C20:StringDeque.cpp
  283. C20:VectorOfBool.cpp
  284. C20:WildLifeMonitor.cpp
  285. C21:SortTest.cpp
  286. C21:SortedSearchTest.cpp
  287. C21:Binder4.cpp 
  288. C21:ForEach.cpp
  289. # Problem in parsing PrintSequence.h:
  290. C21:Counting.cpp
  291. C21:Manipulations.cpp
  292. C21:SearchReplace.cpp
  293. C21:Comparison.cpp
  294. C21:Removing.cpp
  295. C21:CalcInventory.cpp
  296. C21:TransformNames.cpp
  297. C21:SpecialList.cpp
  298. C21:NumericTest.cpp
  299. # The end tag is required:
  300. #///:~
  301.